﻿using AMAP.Domain;
using AMAP.ServiceInterfaces.Common;
using System;

namespace AMAP.ServiceInterfaces
{
    public interface IBasketService : IRepositoryService<Basket>
    {
        /// <summary>
        /// Computes and returns the needed number of basket for the current week
        /// </summary>
        /// <param name="Week">Number of baskets for the week of the given date</param>
        /// <returns>The number of needed basket</returns>
        int GetNumberOfBasket(DateTime Week);

        /// <summary>
        /// Computes and returns the needed number of basket for the given week and day of week
        /// </summary>
        /// <param name="Week">Date of the order validity</param>
        /// <param name="DayOfWeek">Day of week for the order</param>
        /// <returns>The number of needed basket</returns>
        int GetNumberOfBasket(DateTime Week, DayOfWeek DayOfWeek);

        /// <summary>
        /// Computes and returns the basket concerned by the given week
        /// </summary>
        /// <param name="Week">Week of the basket</param>
        /// <returns>Basket of the given week</returns>
        Basket GetByWeek(DateTime Week);
    }
}
